/**
 * 验证码类，用于生成SVG格式的图形验证码。
 *
 * 通过引入svg-captcha库，本类提供了一个方法来创建包含特定配置的图形验证码。
 * 配置包括验证码的逆色、噪点数量、大小、字体大小、宽度和高度等属性，旨在增加验证码的复杂度和安全性。
 * 此外，还可以指定某些字符不被包含在验证码中，以避免混淆。
 */
import svgCaptcha, { CaptchaObj } from "svg-captcha";

class Captcha {
    /**
     * 生成一个SVG格式的图形验证码。
     *
     * @returns {CaptchaObj} 返回一个包含验证码图像和文本的数据对象。
     */
    getCode() {
        // 使用svg-captcha库生成图形验证码，配置各项参数以满足特定的安全和显示需求。
        return svgCaptcha.create({
            inverse: false, // 不使用逆色
            noise: 2, // 设置噪点数量为2，增加验证码的复杂度
            size: 4, // 验证码文本长度为4个字符
            fontSize: 50, // 字体大小为50，确保验证码文本清晰可读
            width: 100, // 验证码图像宽度为100像素
            height: 40, // 验证码图像高度为40像素
            ignoreChars: "0oil", // 不包含字符'0', 'o', 'i', 'l'以避免混淆
        });
    }
}

// 导出一个默认的Captcha实例，供其他模块使用。
export default new Captcha();
